Hugi Magazine 32: Say It With Flowers

hugi 32 header graphic

PostMODism - Review & Making-of (Adok/Hugi)

PostMODism is a music disk made in Russia, featuring tunes created by Manwe of SandS, some of them with exclusive samples recorded by Tangerine of T-Rex. The engine was coded by Digimind. It was released in December 2005.

In total there are seven tunes with a playback duration of 20:46 minutes. All of these tunes are in ProTracker 4-channel .mod format. In the attached file postMODism_rus.txt the idea behind this music disk is explained; unfortunately, this document is in Russian, but Manwe has been kind enough to translate most of it for me. From his translations I deduce that he and Tangerine created this music disk for fun because they wanted to take the challenge of creating good-sounding music with only 4 channels. Manwe compares it to Assembler code optimizing. The music disk is called PostMODism for the reason that the tunes feature samples of a high quality which one would not expect to find in tunes from the era of classic .mods (that is, late 1980s and early 1990s).

In short: It's 4 channel, but modern instruments. The .mod files are huge compared to classical (Amiga) .mods - their size ranges from 400 kb to more than 1 Mb.

My impression of the music: it's mostly contemplative, melodic, and sometimes it sounds a bit jazzy. Of course, as you'd expect from such well-known and respected scene musicians, the overall quality is good. My favourite tunes are (Okay, let's track it!), #4 (Song of Peace) and #5 (Sinsonido bass etude). Here's a complete list of the songs included in this music disk:

01. 'Okay, let's track it' (Manwe)

02. 'To a far away friend' (Manwe)

03. 'Piggie walking to the shop' (Manwe)

04. 'Song of Peace' (Manwe)

05. 'Sinisodo bass etude' (Manwe)

06. 'This bamboo is longer' (Manwe)

07. 'From long distance' (Manwe)

Background information on the making of these tunes and the technology used is displayed in the interface, and thank Goodness it's available both in Russian and English.

The GUI is displayed in a small window, and the graphics don't look any special, but for me that doesn't matter. By default, the description of the current tune is displayed on the left; it can be scrolled up and down. On the right there's the volume regulator (displayed as a circle). By clicking another button, it's possible to switch to song selection mode. The list of tunes is thence displayed on the right.

All in all this music disk is certainly worth the download (less than 4 MB zipped). It probably won't be much of a surprise if I tell you that it's available at pouet.net.

Making of PostMODism

The review is over; now I let the master, Manwe himself, speak. The following paragraphs are from his own translation of postMODism_rus.txt (exclusively for Hugi, so to speak).

"But why MODs, you ask? You know, it's possible to create very complex things with modern trackers (such as ModPlug, Skale, MadTracker, Renoise), using software synths, real instruments, postprocessing, etc. If you are smart enough, you can even do this in standard IT format (using ModPlug with DMO effects). But it all has become boring, especially when you spend a lot of time trying to be "on the edge" of quality standards.

On the other hand, talking about MODs, we can drop out all those "high quality" ambitions. Need "quality" in 8 bit format? Well, we do what we can, but you should understand... :)

So, I passed through that 'quality' shell and concentrated exactly on the pearl: I chose the music itself as a main theme of my MODs. So, I took old melodies, riffs and themes, which had been stored in my head for many, many years, and decided to write them out to the tracker. I had tried to do that before, but finished only with short S3Ms and ITs, one or two patterns each, just to make a 'hard copy' of my memory. I never finished them for only one reason: that abused 'quality'. I always either planned to change the guitar's pickups to another (top quality, of course), or planned to buy a new mic to record the piano with better sound, or wait till the new Moog emulator would be released, or wait for a new guitar processor, or planned to visit a studio to mix the track on the top class audio hardware... Terrible! And only MODs can save us. :)

For example, 'Piggie walking to the shop' was started as a 12-channel IT module, 1.6 Mb in size (I have a lot of 12-channel tunes, it's my favourite number, I don't know why). It was boring to make a 'high end' track of it, but it became a very interesting task to rework it to a 4-channel MOD. I had finished 3 guitar based MODs before, so this task was not impossible for me. It was hard, but not impossible. And very interesting. There are a lot of guitars, which won't fit into the size limit of 1 Mb. So I used some tricks (now comes a technical part):

I divided a guitar phrase to two parts, the first one was resampled to 22 kHz, the second to 11 kHz. After that, both of them was joined one by one and stored in the same sample (what for, I'll explain later). If we play such a sample (let it be sample 07, for example) on any note, we've got either the first part playing slower and twice as low, or the second part playing faster and twice as high. If we want to fix it, we should write:

01 F-6 07 .. ...

02 ... .. .. ...

03 F-5 07 .. o56

04 ... .. .. ...

As you can see, the second part (offset = 56) will be played one octave lower.

Now, let's track the echo on the other channel. We need to write the same things there, but a bit later and with a lower volume.

Everybody knows that MODs supports only one command per note. 'Set volume' is a command. So, we can't use the volume and sample offset at the same time. What are we gonna do?

04 F-6 07 16 ...

05 ... .. 14 ...

06 F-5 .. .. o56

Put the volume (14) alone in the previous row. Lower, put the note but leave instrument and volume columns empty. On the row 06 we have a F-5 note, which would be played with instrument number and volume defined before, and we have an empty place for any command. So, we use sample offset there (o56). It's old trick, but I need to remind of it before we can go forward.

Now, the trick I have never seen before. I used it in 'This bamboo is longer' a lot. As you can see in example above, there must be a note with the same instrument number before our second note which has the sample offset command. In other case it wouldn't works. But sometimes we need only that second note, without previous one. Well, since we can't set zero volume for the first note (we can, but that '14' volume on the next row spoils all the things), we can add the silence to the end of sample! Yes, add the silence and point to it with sample offset command. You can add just a few bytes and loop them or (if the loop is already used in the sample) add more silence (8 kb, for example). Let's add the silence on offset 80. In this case:

04 F-6 07 .. o80

05 ... .. 14 ...

06 F-5 .. .. o56

Only note on the 6th row will produce the sound. There would be a silence before it. But don't let the instrument 07 reach its end (if it is not looped) before the 6th row, otherwise the tracker will forget the parameters of the instrument (number, volume). Better add more silence... Isn't it smart?

But wait a little. We can do even smarter things.

As you can see, we used rows 4 and 5 just to produce a right sound on the 6th row, but sometimes we have no two blank rows before our note. Especially when we're tracking complex lines. Well, an alternative method is: add the silence in the very beginning of the sample (but do not loop that silence area). In this case we get:

05 F-6 07 14 ...

06 F-5 .. .. o76

Look at the offset value, now it is 76 instead of 56, because we added 20 (hex) * 256 = 8 kb of silence in the beginning of the sample. This way we can save one row. I used this trick a lot in 'PostMODism' disk.

And one more thing: if you don't even have a single blank row before the note, increase the tempo (song speed) before that note and decrease it back later. Doing this you'll get a few additional rows between the tempo change commands. Just look at the first pattern of 'This bamboo is longer'.

So, all these tricks, sample rate and offset calculating, etc. look like an Assembler code optimization, aren't they? Such optimization works in some cases and doesn't work in others, you'll start to 'hack' your patterns and samples when something wouldn't fit into 4 channels, and you will probably figure it out only when the song is almost finished... In my opinion, all that stuff makes a tracker musician not only a musician, but a demoscener.

But let's talk about our first example, where the first part of the sample has a 22 kHz rate, the second part has a 11 kHz rate, and both of them are stored in a single sample, one by one. What for? Why not to use a 22 kHz rate everywhere? It will increase the size of the module, but more importantly, MOD files can't hold more than 64 kb sample size. But why not split the sample to two different samples then? MOD has only 31 sample slots, and all of them are already used :) But why not use 11 kHz rate to avoid that tricks? No. No way! I promised you 'quality', even in 8 bit. It's a concept of 'PostMODism'."

If you have any questions on the making of PostMODism, you can contact Manwe at manwe@demoscene.ru.

Adok/Hugi